//package com.niit.xlztest.WeSocket;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.messaging.simp.SimpMessagingTemplate;
//import org.springframework.stereotype.Component;
//import org.springframework.web.socket.TextMessage;
//import org.springframework.web.socket.WebSocketSession;
//import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
//import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
//import org.springframework.web.socket.handler.TextWebSocketHandler;
//
//@Component
//public class ChatHandler implements WebSocketConfigurer {
//
//    @Autowired
//    private SimpMessagingTemplate messagingTemplate;
//
//    @Override
//    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
//        registry.addHandler(new SocketTextHandler(), "/websocket"); // 注册消息处理器
//    }
//
//    private class SocketTextHandler extends TextWebSocketHandler {
//
//        @Override
//        public void afterConnectionEstablished(WebSocketSession session) throws Exception {
//            super.afterConnectionEstablished(session);
//        }
//
//        @Override
//        public void handleTextMessage(WebSocketSession session, TextMessage message) {
//            // 处理接收到客户端的消息
//            String payload = message.getPayload();
//            CommentDto commentDto = new Gson().fromJson(payload, CommentDto.class);
//            commentDto.setUserId(getCurrentUserId()); // 获取当前登录用户 ID
//            // TODO：将评论信息保存到数据库中
//            // 广播消息
//            messagingTemplate.convertAndSend("/topic/comment", payload);
//        }
//
//        private Long getCurrentUserId() {
//            Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
//            Object principal = authentication.getPrincipal();
//            if (principal instanceof UserDetails) {
//                UserDetails userDetails = (UserDetails) principal;
//                return Long.parseLong(userDetails.getUsername()); // 这里假设用户名就是用户 ID
//            }
//            return null;
//        }
//    }
//}
